package com.dh.blog.service;
import java.util.List;
import com.dh.blog.vo.ArticlePagerVo;
import com.dh.blog.vo.ArticleVo;
import com.dh.blog.vo.CatalogVo;
import com.dh.blog.vo.CommentRowVo;
import com.dh.blog.vo.CommentVo;
import com.dh.blog.vo.PagerVo;
import com.dh.blog.vo.PictureFileVo;

public interface ArticleService {
	/**
	 * 判断文章是否存在
	 * @return
	 */
	public int existsArticle(Integer articleId);
	/**
	 * 根据id获取文章
	 * @param articleId
	 * @return
	 */
	public ArticleVo getArticleById(Integer articleId);
	/**
	 * 更新文章
	 * @param articleVo
	 * @return
	 */
	public int doUpdateArticle(ArticleVo articleVo,long updateTime);
	/**
	 * 发布文章
	 * @param articleId
	 */
	public boolean doPublish(ArticleVo articleVo);
	/**
	 * 文章下架
	 * @param articleVo
	 * @return
	 */
	public boolean doCancelPublish(ArticleVo articleVo);
	/**
	 * 判断评论是否存在
	 * @param commentId
	 * @return
	 */
	public int existsComment(String commentId);
	/**
	 * 创建文章（创建，关联，归档）
	 * @param articleVo
	 */
	public void doCreateArticle(ArticleVo articleVo);
	/**
	 * 查询推荐文章
	 * @param blogId
	 */
	public List<ArticleVo> getCommandsByBlog(String blogId);
	/**
	 * 查询文章图片信息
	 * @param blogId
	 * @param artilceId
	 * @return
	 */
	public List<PictureFileVo> getPicsByArticle(Integer articleId);
	/**
	 * 按照查询条件分页查询
	 * @param pager
	 * @return
	 */
	public PagerVo getPagerByBlogAndQuery(ArticlePagerVo pager);
	//用于管理员
	public PagerVo getPagerByBlogAndQueryAdmin(ArticlePagerVo pager);
	/**
	 * 根据查询条件统计数量
	 * @param blogId
	 * @param classifyId
	 * @return
	 */
	public int countByBlogAndQuery(String blogId,Integer classifyId);
	/**
	 * 统计所有数量(用户管理员)
	 * @param blogId
	 * @return
	 */
	public int countByBlog(String blogId);
	/**
	 * 对文章发表评论
	 * @param vo
	 */
	public void doComment(CommentVo vo);
	/**
	 * 获得文章的评论楼信息
	 * @param articleId
	 * @return
	 */
	public List<CommentRowVo> getCommentsByArticle(Integer articleId);
	/**
	 * 获得文章的目录
	 * @param articleId
	 * @return
	 */
	public CatalogVo getCatalogByArticle(Integer articleId);
	/**
	 * 根据id获得评论
	 * @param commentId
	 * @return
	 */
	public CommentVo getCommentById(String commentId);
}
